package com.lancoo.cvas.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.math.BigDecimal;
import java.io.Serializable;
import java.util.List;

import com.lancoo.cvas.pojo.vo.GradeMajorTree;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * @author liufeng
 * @email 1037383243@qq.com
 * @date 2023-12-04 11:54:00
 */
@Data
@TableName("course")
@Accessors(chain = true)
@ApiModel("课程信息")
public class Course implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 课程id
     */
    @TableId(value = "course_id", type = IdType.AUTO)
    @ApiModelProperty("课程id")
    private Long courseId;
    /**
     * 任务id
     */
    @ApiModelProperty("任务id")
    private Integer taskId;
    /**
     * 基础平台课程id
     */
    @ApiModelProperty("基础平台课程id")
    private String baseCourseId;
    /**
     * 课时方案名称
     */
    @ApiModelProperty("课程名称")
    private String courseName;
    /**
     * 课程类别id
     */
    @ApiModelProperty("课程类别id")
    private String courseTypeId;
    /**
     * 课程类别
     */
    @ApiModelProperty("课程类别")
    private String courseType;
    /**
     * 课程性质 1必修 2选修
     */
    @ApiModelProperty("课程性质")
    private Integer courseNature;
    /**
     * 专业性质，1:公共课，2:专业课
     */
    @ApiModelProperty("专业性质")
    private Integer majorProp;
    /**
     * 课程代码
     */
    @ApiModelProperty("课程代码")
    private String courseCode;
    /**
     * 学科id
     */
    @ApiModelProperty("学科id")
    private String subjectId;
    /**
     * 学科名称
     */
    @ApiModelProperty("学科名称")
    private String subjectName;
    /**
     * 课程学分
     */
    @ApiModelProperty("课程学分")
    private Double credit;
    /**
     * 讲授学时
     */
    @ApiModelProperty("讲授学时")
    private Integer lectureHour;
    /**
     * 实验学时
     */
    @ApiModelProperty("实验学时")
    private Integer experimentalHour;
    /**
     * 上机学时
     */
    @ApiModelProperty("上机学时")
    private Integer computerHour;
    /**
     * 其他学时
     */
    @ApiModelProperty("其他学时")
    private Integer otherHour;
    /**
     * 课程备注
     */
    @ApiModelProperty("课程备注")
    private String description;
    /**
     * 操作状态 0未开启 1已开启 2停开（区分申请变更）
     */
    @ApiModelProperty("操作状态")
    private Integer isEnable;
    /**
     * 设置状态 0 未完成 1 完成
     */
    @ApiModelProperty("设置状态")
    private Integer state;
    /**
     * 删除标识：
     * 0：未删除
     * 1：删除
     */
    @ApiModelProperty("删除标识")
    private Integer deleted;
    /**
     *
     */

    private String reserve;

}
